package com.sky.service;

import com.sky.entity.AddressBook;
import java.util.List;

public interface AddressBookService {

    /**
     * 获取地址簿列表
     *
     * 此方法用于查询并返回所有地址簿对象的列表它没有输入参数，返回一个包含AddressBook对象的列表
     *
     * @return 地址簿对象列表
     */
    List<AddressBook> list(AddressBook addressBook);

    /**
     * 保存地址簿信息
     *
     * 此方法用于保存一个地址簿对象如果地址簿的id为空，则视为新增；否则，视为更新现有地址簿信息
     *
     * @param addressBook 要保存的地址簿对象
     */
    void save(AddressBook addressBook);

    /**
     * 根据ID获取地址簿信息
     *
     * 此方法通过地址簿的ID来查询并返回对应的地址簿对象如果找不到对应的地址簿，则返回null
     *
     * @param id 地址簿的唯一标识符
     * @return 对应ID的地址簿对象，如果找不到则返回null
     */
    AddressBook getById(Long id);

    /**
     * 更新地址簿信息
     *
     * 此方法用于更新一个地址簿对象的信息地址簿对象必须包含要更新的地址簿的ID和其他需要修改的属性
     *
     * @param addressBook 要更新的地址簿对象
     */
    void update(AddressBook addressBook);

    /**
     * 设置默认地址簿
     *
     * 此方法将指定的地址簿设置为默认地址簿默认地址簿是在多个地址簿中特别指定的一个，通常用于默认选择或优先展示
     *
     * @param addressBook 要设置为默认的地址簿对象
     */
    void setDefault(AddressBook addressBook);

    /**
     * 根据ID删除地址簿
     *
     * 此方法通过地址簿的ID来删除指定的地址簿对象如果ID对应的地址簿不存在，则删除操作无效
     *
     * @param id 要删除的地址簿的唯一标识符
     */
    void deleteById(Long id);

}